1С 8.3 Создание кнопки с выпадающим списком (меню)
Данные > Примеры кода 1С > 1С 8.3 Форма, элементы
Перейти в раздел примеры кода 1С 8.3:
Проверка на заполнение реквизитов формы реализовано на уровне платформы различными свойствами: АвтоОтметкаНезаполненного (подчеркивание не заполненного реквизита), в свойствах формы признак ПроверятьЗаполнениеАвтоматически, в свойствах реквизитов Проверка заполнения (выдавать ошибку). Однако часто, по разным причинам, необходимо выполнять программную проверку на заполнение элементов формы (реквизитов).
Выпадающее меню кнопки на форме (на УФ список не всегда корректно срабатывает!) в 1С 8.3:
&НаКлиенте
Процедура ПечатьРБПосле(Команда)
// Список:
списокКнопки = Новый СписокЗначений(); //список для меню
списокКнопки.Добавить(0, "Путевой лист Грузовая");
списокКнопки.Добавить(1, "Путевой лист Трактор");
списокКнопки.Добавить(2, "Путевой лист ЛА");
// Отображение меню:
Результат = ВыбратьИзМеню(списокКнопки, Элементы.Команда);
// или Результат = ВыбратьИзСписка(списокКнопки, Элементы.Команда, 0);
Если Результат = Неопределено Тогда
//Сообщить("Не выбрано ничего");
Иначе
// Элемент списка значений "списокКнопки"
Сообщить("Выбрана печ.форма: " + Результат.Представление);
КонецЕсли;
КонецПроцедуры
Процедура ПечатьРБПосле(Команда)
// Список:
списокКнопки = Новый СписокЗначений(); //список для меню
списокКнопки.Добавить(0, "Путевой лист Грузовая");
списокКнопки.Добавить(1, "Путевой лист Трактор");
списокКнопки.Добавить(2, "Путевой лист ЛА");
// Отображение меню:
Результат = ВыбратьИзМеню(списокКнопки, Элементы.Команда);
// или Результат = ВыбратьИзСписка(списокКнопки, Элементы.Команда, 0);
Если Результат = Неопределено Тогда
//Сообщить("Не выбрано ничего");
Иначе
// Элемент списка значений "списокКнопки"
Сообщить("Выбрана печ.форма: " + Результат.Представление);
КонецЕсли;
КонецПроцедуры
Пример реализации на ОП: выпадающее меню кнопки в 1С 8.3:
Процедура РаспределитьСборНажатие(Элемент)
МенюКнопки = Новый СписокЗначений(); //список для меню
МенюКнопки.Добавить(0, "Распределить сбор равными долями");
МенюКнопки.Добавить(1, "Распределить сбор пропорционально кол-ву");
МенюКнопки.Добавить(2, "Распределить сбор пропорционально сумме");
// Отображение меню:
Результат = ВыбратьИзМеню(МенюКнопки, ЭлементыФормы["РаспределитьС"]);
// РаспределитьС - название кнопки на форме (ОП)
Если Результат <> Неопределено Тогда
ИтогоОчиститьСборПошлину();
РаспределитьСбор(Результат.Значение);
КонецЕсли;
КонецПроцедуры
МенюКнопки = Новый СписокЗначений(); //список для меню
МенюКнопки.Добавить(0, "Распределить сбор равными долями");
МенюКнопки.Добавить(1, "Распределить сбор пропорционально кол-ву");
МенюКнопки.Добавить(2, "Распределить сбор пропорционально сумме");
// Отображение меню:
Результат = ВыбратьИзМеню(МенюКнопки, ЭлементыФормы["РаспределитьС"]);
// РаспределитьС - название кнопки на форме (ОП)
Если Результат <> Неопределено Тогда
ИтогоОчиститьСборПошлину();
РаспределитьСбор(Результат.Значение);
КонецЕсли;
КонецПроцедуры
Подменю в произвольной группе на форме в 1С 8.3:
- выделяем искомую группу, "Добавить" - "Группа - Командная панель";
- выделяем добавленную командную панель, "Добавить" - "Группа - Подменю";
- создаем команду, переносим ее в подменю.
Как это выглядит на форме - слева в конфигураторе, справа на форме в режиме предприятия:
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник